# 生成99乘法表
a = 1
while a < 10 :
    for b in range(1,a+1):
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')
    print('')
    a = a+1
print('第一个')
print('=' * 60)
a = 10
while a > 0 :
    a = a-1
    for b in range(a,0,-1):
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')
    print('')
print('第二个')
print('=' * 60)
for a in range(1,10):
    s = a
    while 1 < 10-s:
        print('{:2}{:2}{:<3}'.format(' ', ' ', ' '), end=' ')
        s += 1
    for b in range(1,a+1):
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')
    print('')
print('第三个')
print('=' * 60)
for a in range(9,0,-1):
    s = a
    while 1 < 10 - s:
        print('{:2}{:2}{:<3}'.format(' ', ' ', ' '), end=' ')
        s += 1
    for b in range(1,a+1):
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')

    print('')

print('第四个')
print('=' * 60)
for a in range(1,10):
    s = a
    while 1 < 10 - s:
        print('{:2}{:2}{:<3}'.format(' ', ' ', ' '), end=' ')
        s += 1
    b = 0
    while b < a:
        b = b + 1
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')
    print('')
print('第五个')
print('=' * 60)
for a in range(9,0,-1):
    s = a
    while 1 < 10 - s:
        print('{:2}{:2}{:<3}'.format(' ', ' ', ' '), end=' ')
        s += 1
    b = 0
    while b < a:
        b = b + 1
        print('{}*{}={:<3}'.format(a, b, a * b), end=' ')
    print('')

print('第六个')
print('=' * 60)
a = 0
while a < 9 :
    a += 1
    b = 0
    while b < a:
        b = b + 1
        print('{}*{}={:<3}'.format(a,b,a*b),end=' ')
    print('')
print('第七个')
print('=' * 60)
a = 10
while a > 0 :
    a -= 1
    b = 0
    while b < a:
        b = b + 1
        print('{}*{}={:<3}'.format(a, b, a * b), end=' ')
    print('')
print('第八个')
print('=' * 60)

# 使用文件和目录操作，定义一个统计指定目录大小的函数（注意目录中还有子目录）。
import os
# 创建函数1.遍历文件夹2.判断文件夹中是目录还是文件3.文件统计大小4.目录继续
def dir_size(dirl1):
    # 获取目录中文件及目录
    dirlist1 = os.listdir(dirl1)
    # print(dirlist1)
    b = 0  # 初始化文件大小
    # 遍历目录
    for f in dirlist1:
        # 拼接每个文件的目录
        dirl2 = os.path.join(dirl1, f)
        # 判断是否为文件
        if os.path.isfile(dirl2):
            a = os.path.getsize(dirl2)
            b += a
            #print(b)
        # if os.path.isdir(dirl2):
        #     b += dir_size(dirl2)
        else:
            b += dir_size(dirl2)
    return b
print(dir_size('./test'))

#  参考第9节的综合案例中的学生信息管理，来实现一个自动取款机的存取款模拟效果。要求有登陆和退出、查询余额、取钱，存钱等操作。
'''
1.建立数据源
2.登录功能（判断是否存在用户，密码是否正确）
3.查询余额
'''
# 1
list1 = [{'name':'小武','password':'123456','balance':987654321,'flat':0,'state':0},
         {'name':'小卓','password':'123456','balance':987654321,'flat':0,'state':0},
         {'name':'小奇','password':'123456','balance':987654321,'flat':0,'state':0}]
w = False # 登录标识
# 登陆功能
def login1(name):
    global list1,w
    for s,l in enumerate(list1):# 遍历数据源
        a = l['name']
        if name in a:
            # 验证密码只有三次机会
            while True:
                b = input('请输入您的密码\n')
                if list1[s]['flat'] < 2:
                    if b == list1[s]['password']:
                        list1[s]['state'] = 1# 登陆成功标识
                        print('@'*10,'欢迎{}使用'.format(name),'@'*10)
                        w = True # 为下一步做准备
                        #print(list1[s])
                        break
                    else:
                        list1[s]['flat'] += 1
                        print(
                            '您还有{}次机会'.format(3-list1[s]['flat'])
                        )
                else:
                    print('你的账号已经被锁定')
                    break
            break
        else:
            print('￥$'*8,'您还未开户，请前往吧台开户！','￥$'*8)
            break
# login1('小武')

# 获取用户编码
def num_user(name):
    global list1
    for s, l in enumerate(list1):  # 遍历数据源
        a = l['name']
        if name in a:
            return s
            break
        else:
            print('￥$' * 8, '您还未开户，请前往吧台开户！', '￥$' * 8)
            break
# 查看余额
def check_balance(name):
    s = num_user(name)
    global list1
    # 查看登陆状态
    if list1[s]['state'] == 1:
        print('=' * 40)
        print('=' * 10, '大爷真是您要看存款', '=' * 10)
        print('^' * 40)
        print('{}{}'.format('您的余额为',list1[s]['balance']))
    else:
        print('￥$' * 8, '您还未登录！', '￥$' * 8)
#login1('小武')
#check_balance('小武')
# 存款
def add_balance(name):
    s = num_user(name)
    global list1
    # 查看登陆状态
    if list1[s]['state'] == 1:
        print('{}{}'.format('您的余额为', list1[s]['balance']))
        d = int(input('请输入你要存入金额'))
        if d > 0:
            print('=' * 40)
            print('=' * 10, '大爷要加钱了', '=' * 10)
            print('^' * 40)
            print('{}{}{}{}'.format('你存入金额',d,'您的余额为', list1[s]['balance']+d))
        else:
            print('￥$' * 8, '请您输入正确金额', '￥$' * 8)
    else:
        print('￥$' * 8, '您还未登录！', '￥$' * 8)
# 取款
def del_balance(name):
    s = num_user(name)
    global list1
    # 查看登陆状态
    if list1[s]['state'] == 1:
        print('{}{}'.format('您的余额为', list1[s]['balance']))
        d = int(input('请输入你要取出金额'))
        if d > 0:
            print('=' * 40)
            print('=' * 10, '大爷要取钱了', '=' * 10)
            print('^' * 40)
            print('{}{}{}{}'.format('你取出金额',d,'您的余额为', list1[s]['balance']-d))
        else:
            print('￥$' * 8, '请您输入正确金额', '￥$' * 8)
    else:
        print('￥$' * 8, '您还未登录！', '￥$' * 8)
# 推出系统
def loginout(name):
    s = num_user(name)
    global list1
    list1[s]['state'] = 0
    print('=' * 40)
    print('=' * 10, '大爷要要走了', '=' * 10)
    print('^' * 40)
    print('￥$' * 8, '我滚了！', '￥$' * 8)

while True:
    print('=' * 15, '欢迎使用XX银行', '=' * 15)
    print(' ')
    print('{:6}{:<3}{:<6}'.format('1.登录系统 ', 'or', '2.路过调戏'))
    x = input('请输入你的操作\n')
    if x == '1':
        o = input('尊姓大名\n')
        login1(o)
        while w:
            print('{:10}{:<10}{:<10}{:<10}'.format('1.偷偷看剩多少', '2.大爷存钱吧', '3.取钱来花花','4.系统跪安吧'))
            y = input('尊敬的{}请输入你的操作\n'.format(o))
            if y == '1':
                check_balance(o)
                input('按回车继续')
            elif y == '2':
                add_balance(o)
                input('按回车继续')
            elif y == '3':
                del_balance(o)
                input('按回车继续')
            elif y == '4':
                loginout()
                break

    else:
        print('=' * 12, '调可以但是你要有钱，再见 (╯‵□′)╯︵┻━┻', '=' * 12)






















































































































































































